package main

import (
	"github.com/gin-gonic/gin"
	_ "github.com/go-sql-driver/mysql"
	"github.com/spf13/viper"
	"mall-go/common"
	"os"
)

func main() {
	/*
		todo  这里本来想直接用init函数的，但是子包下的init执行会比main.go的init快，会导致还没加载配置就已经加载数据库从而发生错误，所以先全部写到main中，后面有空研究下
	*/
	InitConfig()
	common.InitDB()
	r := gin.Default()
	r = MallCollectRoute(r)
	port := viper.GetString("server.port")
	if port != "" {
		panic(r.Run(":" + port))
	}
	panic(r.Run()) // listen and serve on 0.0.0.0:8080
}

func InitConfig() {
	workDir, _ := os.Getwd() //获取当前目录
	viper.SetConfigName("application")
	viper.SetConfigType("yml")
	viper.AddConfigPath(workDir + "/config")
	if err := viper.ReadInConfig(); err != nil {
		panic(err)
	}

}
